perm filename DRAIT.F4[CMS,LCS]2 blob
sn#096333 filedate 1974-04-11 generic text, type T, neo UTF8
00100 DIMENSION II(1000),JJ(1000),KK(1000),LL(1000),KP(5),NN(4000)
00200 1,A(400),B(400),IB(400)
00300 COMMON KP,NP,NN
00400 IMP(I)=IABS(NN(I)/100000000)
00500 1 JE=0
00600 MN=0
00700 IP=-1
00800 MO=0
00900 NZ=10
01000 IM=0
01100 NF=1
01200 CALL DPYCLR
01300 CALL TYPLOC(-350,-511)
01400 DO 407 I=1,4
01500 407 KP(I)=' '
01600 CALL DPYSET(4,LL,1000)
01700 CALL DPYSET(3,KK,1000)
01800 CALL DPYSET(2,JJ,1000)
01900 CALL DPYSET(1,II,1000)
02000 MN=0
02100 2 TYPE 5
02200 5 FORMAT(' TYPE:<CR>;TO DRAW NEW PICTURE.'/
02300 1' OR TYPE IN NAME TO USE OLD PICTURE.'/)
02400 ACCEPT 3,NAM
02500 3 FORMAT(A5)
02600 IF(NAM.EQ.' ')GO TO 140
02700 IF(.NOT.LOOKD(NAM))GO TO 2
02800 515 CALL IFILE(1,NAM)
02900 READ(1)LE,(NN(K),K=MN+1,MN+LE)
03000 MN=MN+LE
03100 IP=-1
03200 IF(MO.NE.'P')GO TO 517
03300 MO=100000000
03400 DO 518 K=MN-LE+1,MN
03500 MP=1
03600 IF(NN(K))MP=-1
03700 NN(K)=IABS(NN(K))
03800 518 NN(K)=MP*(NP*MO+(MOD(NN(K),MO)))
03900 GO TO 503
04000 517 DO 388 K=1,MN
04100 NP=IMP(K)
04200 CALL SETPOG(NP)
04300 CALL INXY(NX,NY,K)
04400 MP=1
04500 IF(NN(K))MP=-1
04600 388 CALL IPEN(NX,NY,MP,NZ)
04700 DO 193 I=1,4
04800 KP(I)='VIS '
04900 193 CALL DPYOUT(I)
05000 CALL SETPOG(1)
05100 140 NP=1
05200 CALL IPOG(NZ)
05300
05400 211 NS=0
05500 120 LV=0
05600 144 CALL SETCUR(NX,NY,LV)
05700 IF(NS)TYPE 6
05800 6 FORMAT(' :'$)
05900 ACCEPT 103,M,N
06000 103 FORMAT(2A1)
06100 LX=NX
06200 LY=NY
06300 CALL RDCUR(NX,NY)
06400 IF(NC)GO TO 191
06500 IF(M.NE.' ')GO TO 11
06600 308 IF(LV.NE.0)GO TO 192
06700 301 CALL IPAK(NX,NY,MN,1,NZ)
06800 LV=1
06900 GO TO 144
07000 192 CALL IPAK(NX,NY,MN,-1,NZ)
07100 341 N=NP
07200 278 CALL DPYOUT(N)
07300 KP(N)='VIS '
07400 360 IF(IP)CALL IPOG(NZ)
07500 260 IF(NS)GO TO 144
07600 GO TO 120
07700
07800 11 IF(M.EQ.':')GO TO 261
07900 IF(M.EQ.'.')GO TO 303
08000 IF(M.EQ.'W')GO TO 380
08100 IF(M.EQ.'H')GO TO 306
08200 IF(M.EQ.'V')GO TO 307
08300 IF(M.EQ.'B')GO TO 105
08400 IF(M.EQ.'C')GO TO 150
08500 IF(M.EQ.'+')GO TO 500
08600 IF(M.EQ.'-')GO TO 501
08700 IF(M.EQ.'*')GO TO 502
08800 IF(M.EQ.'J')GO TO 608
08900 IF(M.EQ.'A')GO TO 510
09000 IF(M.EQ.'E')GO TO 425
09100 IF(M.EQ.'(')GO TO 431
09200 IF(M.EQ.')')GO TO 432
09300 IF(M.EQ.'I'.OR.M.EQ.'S')GO TO 230
09400 IF(M.EQ.'X')GO TO 104
09500 IF(M.EQ.'Z')GO TO 580
09600 IF(M.EQ.'F')GO TO 601
09700 IF(M.NE.'P')GO TO 260
09800 IP=-1
09900 IF(N.EQ.'I')GO TO 258
10000 IF(N.EQ.'D')GO TO 340
10100 IF(N.NE.' ')GO TO 231
10200 259 NP=NP+1
10300 IF(NP.GT.4)NP=1
10400 251 CALL SETPOG(NP)
10500 GO TO 503
10600 303 IF(LV.EQ.0)GO TO 301
10700 CALL IPAK(NX,NY,MN,-1,NZ)
10800 333 KP(NP)='VIS '
10900 IF(IP)CALL IPOG(NZ)
11000 CALL DPYOUT(NP)
11100 NX=LX
11200 NY=LY
11300 IF(.NOT.NC)GO TO 301
11400 NC=0
11500 GO TO 211
11600 601 I=0
11700 602 I=I+1
11800 IF(I.GT.MN)GO TO 360
11900 IF(IMP(I).NE.NP)GO TO 602
12000 K=0
12100 606 K=K+1
12200 CALL INXY(N,M,I)
12300 A(K)=N*NZ/10
12400 B(K)=M*NZ/10
12500 IB(K)=3
12600 IF(NN(I))IB(K)=2
12700 I=I+1
12800 IF(I.LE.MN)GO TO 606
12900 IB(1)=K
13000 CALL FILLER(A,B,IB,6,NP)
13100 GO TO 341
13200 608 IF(.NOT.NS)GO TO 341
13300 NS=0
13400 CALL IPAK(JX,JY,MN,-1,NZ)
13500 GO TO 341
13600 306 NY=LY
13700 GO TO 308
13800 307 NX=LX
13900 GO TO 308
14000 230 IF(N.EQ.' ')GO TO 258
14100 231 IF(N.LT.'1'.OR.N.GT.'4')GO TO 255
14200 REREAD 408,M,N
14300 408 FORMAT(A1,I1)
14400 IF(M.EQ.'S')GO TO 278
14500 IF(M.NE.'I')GO TO 256
14600 257 KP(N)=' '
14700 CALL HYDPOG(N)
14800 IF(M.EQ.'P')GO TO 259
14900 GO TO 360
15000 255 IF(M.EQ.'P')GO TO 259
15100 258 IF(M.EQ.'S')GO TO 341
15200 N=NP
15300 GO TO 257
15400 256 NP=N
15500 GO TO 251
15600 261 IF(NS)GO TO 211
15700 NS=-1
15800 JX=NX
15900 JY=NY
16000 IF(LV.EQ.1)GO TO 192
16100 GO TO 301
16200 580 IF(IP)GO TO 581
16300 IP=-1
16400 GO TO 360
16500 581 IP=0
16600 N=5
16700 GO TO 257
16800 500 IF(NZ.EQ.20)GO TO 503
16900 NZ=NZ+1
17000 GO TO 503
17100 501 IF(NZ.EQ.5)GO TO 503
17200 NZ=NZ-1
17300 GO TO 503
17400 502 IF(NZ.EQ.10)GO TO 503
17500 NZ=10
17600 503 CALL CLRPOG(NP)
17700 CALL IDRA(MN,NZ)
17800 GO TO 335
17900 510 REREAD 516,MO,NAM
18000 516 FORMAT(1XA1,A5)
18100 IF(.NOT.LOOKD(NAM))GO TO 260
18200 GO TO 515
18300 340 CALL CLRPOG(NP)
18400 J=0
18500 400 J=J+1
18600 507 IF(J.GT.MN)GO TO 466
18700 MP=IMP(J)
18800 IF(MP.NE.NP)GO TO 400
18900 DO 401 I=J,MN-1
19000 401 NN(I)=NN(I+1)
19100 MN=MN-1
19200 GO TO 507
19300 466 IF(JE)GO TO 467
19400 IP=-1
19500 GO TO 431
19600 105 IF(MN.LT.1.OR.IMP(MN).NE.NP)GO TO 335
19700 IF(NP.EQ.1)II(2)=II(2)-1
19800 IF(NP.EQ.2)JJ(2)=JJ(2)-1
19900 IF(NP.EQ.3)KK(2)=KK(2)-1
20000 IF(NP.EQ.4)LL(2)=LL(2)-1
20100 CALL ACCPOG(NP)
20200 MN=MN-1
20300 335 NS=0
20400 GO TO 341
20500 150 NC=-1
20600 IF(LV.NE.1)GO TO 301
20700 191 R=0
20800 RM=(NX-LX)**2+(NY-LY)**2
20900 RM=SQRT(RM)
21000 KX=LX+RM*SIND(R)
21100 KY=LY+RM*COSD(R)
21200 CALL IPAK(KX,KY,MN,1,NZ)
21300 DO 151 K=6,360,6
21400 R=K
21500 KX=LX+RM*SIND(R)
21600 KY=LY+RM*COSD(R)
21700 151 CALL IPAK(KX,KY,MN,-1,NZ)
21800 GO TO 333
21900 380 IF(LV.NE.1)GO TO 103
22000 REREAD 377,M,N
22100 377 FORMAT(A1,I2)
22200 IF(N.LT.4)N=100
22300 KN=N/10
22400 IF(KN.LT.2)KN=2
22500 DO 381 I=0,N,KN
22600 CALL IPAK(LX-N/2+I,LY-N/2+I,MN,1,NZ)
22700 381 CALL IPAK(NX-N/2+I,NY-N/2+I,MN,-1,NZ)
22800 GO TO 341
22900 425 I=0
23000 426 I=I+1
23100 IF(I.GT.MN)GO TO 211
23200 430 IF(IMP(I).NE.NP)GO TO 426
23300 548 CALL INXY(NX,NY,I)
23400 CALL SETCUR(NX*NZ/10,NY*NZ/10,1)
23500 TYPE 469
23600 469 FORMAT(' ERASE?'$)
23700 ACCEPT 103,M,N
23800 IF(M.EQ.' ')GO TO 426
23900 IF(M.EQ.'Y')GO TO 470
24000 IF(M.EQ.'I')GO TO 547
24100 IF(M.NE.'B')GO TO 211
24200 549 I=I-1
24300 IF(I.LT.1)GO TO 211
24400 IF(IMP(I).NE.NP)GO TO 549
24500 GO TO 548
24600 547 NN(I)=IABS(NN(I))
24700 GO TO 471
24800 470 MN=MN-1
24900 DO 428 K=I,MN
25000 428 NN(K)=NN(K+1)
25100 471 CALL CLRPOG(NP)
25200 CALL IDRA(MN,NZ)
25300 CALL DPYOUT(NP)
25400 GO TO 430
25500 431 NX=0
25600 NY=0
25700 NF=MN+1
25800 IM=0
25900 GO TO 211
26000 432 IF(IM.EQ.0)IM=MN
26100 DO 433 I=NF,IM
26200 CALL INXY(IX,IY,I)
26300 IX=NX+IX
26400 IY=NY+IY
26500 MP=1
26600 IF(NN(I))MP=-1
26700 433 CALL IPAK(IX,IY,MN,MP,NZ)
26800 GO TO 341
26900
27000 104 CALL CLRCUR
27100 CALL IPOG(NZ)
27200 IP=-1
27300 TYPE 111
27400 111 FORMAT(' TYPE:<CR>;TO CONTINUE.'/' TYPE:''N''<CR>;TO START OVER.'/
27500 2' TYPE:''X'' TO SAVE VIS POGS IF FINISHED'/
27600 3' OR TYPE:''P'' TO PLOT ALL VIS POGS'/)
27700 ACCEPT 103,M,N
27800 IF(M.EQ.'N')GO TO 1
27900 IF(M.EQ.'P')GO TO 557
28000 IF(M.NE.'X')GO TO 120
28100 127 TYPE 121
28200 121 FORMAT(' TYPE A FIVE LETTER NAME FOR THIS PICTURE.'/)
28300 ACCEPT 3,NAM
28400 IF(NAM.EQ.' ')GO TO 127
28500 557 MP=0
28600 DO 405 NP=1,4
28700 IF(KP(NP).NE.'VIS ')GO TO 405
28800 MP=MP+1
28900 CALL IPAK(0,0,MN,1,10)
29000 405 CONTINUE
29100 IF(MP.EQ.0)GO TO 104
29200 NP=0
29300 JE=-1
29400 467 NP=NP+1
29500 IF(NP.GT.4)GO TO 468
29600 IF(KP(NP).NE.'VIS ')GO TO 340
29700 GO TO 467
29800 468 IF(M.EQ.'P')GO TO 555
29900 CALL OFILE(1,NAM)
30000 WRITE(1)MN,(NN(K),K=1,MN)
30100 END FILE 1
30200 GO TO 1
30300 555 TYPE 587
30400 587 FORMAT(/' PLOTING ALL VIS POGS'/)
30500 CALL PLOTS(I)
30600 DO 556 I=1,MN
30700 CALL INXY(NX,NY,I)
30800 MO=3
30900 IF(NN(I))MO=2
31000 556 CALL PLOT(NX*NZ/10,NY*NZ/10,MO)
31100 GO TO 1
31200 END
31300
31400 SUBROUTINE IPOG(NZ)
31500 COMMON KP(5),NP,NN(4000)
31600 DIMENSION MM(30),JP(4)
31700 CALL DPYSET(5,MM,30)
31800 CALL DPYTXT(100,-430,'POG1 POG2 POG3 POG4 ZOOM ',5)
31900 KP(5)=' REG '
32000 IF(NZ.LT.10)KP(5)=' --- '
32100 IF(NZ.GT.10)KP(5)=' +++ '
32200 CALL DPYTXT(100,-450,KP,5)
32300 DO 4 J=1,4
32400 JP(J)=' '
32500 4 IF(J.EQ.NP)JP(J)=' ↑↑ '
32600 CALL DPYTXT(100,-470,JP,4)
32700 CALL DPYOUT(5)
32800 CALL SETPOG(NP)
32900 RETURN
33000 END
33100 SUBROUTINE IPAK(NX,NY,MN,MP,NZ)
33200 COMMON KP(5),NP,NN(4000)
33300 MN=MN+1
33400 IX=(NX*10/NZ)+1024
33500 IY=(NY*10/NZ)+1024
33600 NN(MN)=MP*(NP*100000000+IX*10000+IY)
33700 CALL IPEN(NX,NY,MP,10)
33800 RETURN
33900 END
34000 SUBROUTINE IPEN(NX,NY,MP,NZ)
34100 IX=NX*NZ/10
34200 IF(IX.GT.950)IX=950
34300 IF(IX.LT.-950)IX=-950
34400 IY=NY*NZ/10
34500 IF(IY.GT.950)IY=950
34600 IF(IY.LT.-950)IY=-950
34700 IF(MP)GO TO 1
34800 CALL AIVECT(IX,IY)
34900 RETURN
35000 1 CALL AVECT(IX,IY)
35100 RETURN
35200 END
35300 SUBROUTINE INXY(NX,NY,MN)
35400 COMMON KP(5),NP,NN(4000)
35500 J=IABS(NN(MN))
35600 NY=MOD(J,10000)-1024
35700 NX=(MOD(J,100000000)/10000)-1024
35800 RETURN
35900 END
36000 SUBROUTINE IDRA(MN,NZ)
36100 COMMON KP(5),NP,NN(4000)
36200 DO 1 I=1,MN
36300 IF(IABS(NN(I)/100000000).NE.NP)GO TO 1
36400 CALL INXY(IX,IY,I)
36500 CALL IPEN(IX,IY,NN(I),NZ)
36600 1 CONTINUE
36700 RETURN
36800 END